package com.woniuxy.verify.controller;

import com.woniuxy.verify.bean.UserBean;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.validation.ObjectError;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestMapping;

import java.util.List;

/**
 * @author linke
 * @version 1.0
 * @className: UserController
 * @description: 增加格式检验
 * @date 2021/11/14 15:13
 */
@RequestMapping("/user")
@Controller
public class UserController {

    /**
     * @Validated 表示需要对某一个JavaBean做格式校验
     * @param userBean
     * @param result 验证的结果
     * @return
     */
    @RequestMapping("/validator")
    public String validator(@Validated UserBean userBean, BindingResult result, Model model){

        //判断是否有错误
        if(result.hasErrors()){
            List<ObjectError> errs = result.getAllErrors();
            //遍历集合，输出集合中元素(采用lambda 表达式)
            errs.forEach((e)-> {
                //输出哪些属性出错，出的是什么错误，有什么提示码
                System.out.println(e.getObjectName());
                System.out.println(e.getDefaultMessage());
                System.out.println(e.getCode());
            });
            /**
             * 错误消息
             * userBean
             * 未成年人，不能注册！
             * Min
             */
            //如果有错误，就去注册页面
            model.addAttribute("errs",errs);
            return "jsp/validator";
        }

        System.out.println(userBean);

        //注册成功，就去登陆页面
        return "index";
    }
    /**
     * String 可以向 对象进行执行转换
     *
     * @param userBean
     * @return
     */
    @RequestMapping(value = "/register")
    public String register(UserBean userBean) {

        System.out.println(userBean);//UserBean(id=null, userName=333, loginName=123, password=2222, age=22, marray=true, income=2222.0, hobbys=[0])
        //增加时间 自定义转换器
        //UserBean(id=null, userName=22, loginName=213, password=11111, age=22222, marray=true, income=2222.0, hobbys=[1], birthday=Fri Nov 11 00:00:00 CST 2011)
        return "index";
    }
    /**
     * String 可以向 基本数据类型，包装类型，String ,String[] 直接完成转换
     * @param loginName
     * @param userName
     * @param password
     * @param age
     * @param marry
     * @param income
     * @param hobbys
     * @return
     */
    /*    @RequestMapping(value="/register")
        public String register(String loginName, String userName, String password,
                               int age, boolean marry, double income, String[] hobbys) {

            System.out.println(loginName);
            System.out.println(userName);
            System.out.println(password);
            System.out.println(age);
            System.out.println(marry);
            System.out.println(income);
            System.out.println(Arrays.toString(hobbys));


            return "index";
        }*/
}